Amazon RDS에 접속하는 패턴을 정리
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 Amazon RDS에 접속하는 패턴을 정리해 봤습니다.
인터넷 게이트웨이를 통해 접속
가장 심플한 방법으로는 Amazon RDS를 Public Subnet에 배치해서 인터넷 게이트웨이를 통해 접속하는 방법입니다.
Amazon RDS에서는「퍼블릭 액세스」를 허용할지, 거부할지에 대한 옵션을 선택할 수 있습니다.
Public Subnet에 배치하여 인터넷을 통한 접속을 허용하게 하기위해서는 퍼블릭 액세스를 허용해야 하며, 퍼블릭 액세스를 허용하면 데이터베이스에 퍼블릭 IP를 할당하게 됩니다.
데이터베이스에 대한 액세스는 데이터베이스와 연결된 보안 그룹에 의해 제어되어지기 때문에, 접속을 허용하고자 하는 IP 주소를 설정하면 해당 IP 주소로만 접속을 할 수 있게 됩니다.
간편한 액세스가 가능하다는 장점이 있지만, 반대로 데이터베이스가 인터넷에 노출되기 때문에 보안 문제가 발생할 수 있고, 불필요한 보안 위험이나 공격의 대상이 될 수 있습니다.
발판 서버를 통한 접속
다음은 발판 서버를 이용한 RDS 접속입니다.
인터넷 게이트웨이를 통한 접속과는 다르게 RDS를 Private Subnet에 배치하고, RDS에 접속하기 위해 Public Subnet에 발판 서버인 EC2 인스턴스를 배치한 상태입니다.
RDS를 Private Subnet에 배치했기 때문에 퍼블릭 액세스의 경우 거부된 상태이며, 외부에서의 접속은 완전히 차단된 상태입니다.
여기서 RDS를 접속하기 위해서는 반드시 발판 서버를 거쳐서 접속을 해야합니다.
발판 서버를 사용하면 액세스 제어를 관리할 수 있으며, RDS에 직접 퍼블릭 액세스를 허용하지 않고, 발판 서버를 통한 접속을 설정하면 보안을 강화할 수 있다는 장점이 있습니다.
반대로 발판 서버를 통한 접속은 중간 단계가 추가되기 때문에 접속에 번거로움이 생기며, 발판 서버를 운영하기 위해서는 별도의 EC2 인스턴스가 필요하기 때문에 별도 비용이 발생합니다.
포트 포워딩을 통한 접속
다음은 SSM 포트 포워딩을 활용한 접속입니다.
EC2 인스턴스와 RDS 둘 다 Private Subnet에 배치합니다.
그리고 클라이언트 측에서 Private Subnet에 배치된 EC2 인스턴스에 SSM 포트 포워딩을 실시합니다.
포트 포워딩한 상태에서 클라이언트 PC에서 Postgre 클라이언트 등으로 직접 접속을 수행할 수 있습니다.
구성하고 있는 AWS 환경에 EC2 인스턴스가 없다면, 발판 서버와 마찬가지로 EC2 인스턴스를 생성해야합니다만, 외부와 완전히 차단된 환경에서의 접속이 가능해지기 때문에 보안적으로 메리트가 있는 접속 방법이라 생각합니다.
RDS에 포트 포워딩으로 접속하는 방법에 대해서는 아래 블로그를 참고해 주세요.
Site to Site VPN을 통한 접속
이어서 Site to Site VPN을 통한 접속입니다.
기존 접속 패턴과는 다르게, EC2 인스턴스를 통하지 않고, Site to Site VPN을 설정하여 Private 네트워크를 통해 RDS에 접속할 수 있습니다.
Site to Site VPN 혹은 DX를 도입하는 환경이라면 발판 서버, SSM 포트 포워딩을 통한 접속보다 상기 구성을 통한 접속이 더 간편하며, 보안적으로도 문제가 없을 것이라 생각됩니다.
마지막으로
그 외 접속 방법으로는 아래 공식 문서에서 안내하고 있습니다.
실제로 RDS를 생성하고, 어떤 식으로 접속하는 게 좋을까? 내 환경에 맞는 접속 방법은 무엇일까 항상 고민하게 됩니다.
그럴 때 상기 패턴들을 보면서 내 환경에 맞는 접속 방법을 찾아 설정할 수 있었으면 좋겠습니다.
본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 [email protected]로 보내주시면 감사하겠습니다.